e6467d01ce5ba49eb4495372b70270d5cec008c4,project-set/components/datastore/src/main/java/com/rackspace/papi/components/datastore/hash/AbstractHashRingDatastore.java,AbstractHashRingDatastore,put,#String#number[]#number[]#number#TimeUnit#,90
Before Change
protected void put(String name, byte[] id, byte[] value, int ttl, TimeUnit timeUnit) throws DatastoreOperationException {
InetSocketAddress target;
while (!(target = getTarget(id)).equals(clusterView.localMember())) {
LOG.debug(clusterView.localMember().toString() + ":: Routing datastore get request for, \"" + name + "\" to: " + target.toString());
try {
remoteCache.put(name, value, ttl, timeUnit, target);
After Change
protected void put(String name, byte[] id, byte[] value, int ttl, TimeUnit timeUnit) throws DatastoreOperationException {
boolean retry;
do {
retry = false;
final InetSocketAddress target = getTarget(id);
if (target != null && !target.equals(clusterView.localMember())) {
LOG.debug(clusterView.localMember() + ":: Routing datastore put request for, \"" + name + "\" to: " + target.toString());
try {
remoteCache.put(name, value, ttl, timeUnit, target);
return;
} catch (RemoteConnectionException rce) {
clusterMemberDamaged(target, clusterView, rce);
retry = true;
}
}
} while (retry);
localDatastore.put(name, value, ttl, timeUnit);
}